import {
	combineURL,
	replaceParamsInURL,
	combineQueryToURL
} from '@/utils/axios/lib/helper/helper.js'
import {
	isObject,
	assign
} from 'lodash'
import adapter from '../adapter/adapter.js'


/**
 * 构建请求地址、请求头、请求数据
 */
export default function dispatchRequest(config) {


	// 构建请求地址
	config.url = combineURL(config.baseURL, config.url)

	// 构建请求方法
	config.method = (config.method || 'get').toUpperCase()

	// 组装数据至url
	if (config.query && isObject(config.query)) {
		config.url = combineQueryToURL(config.url, config.query)
	}
	if (config.params && isObject(config.params)) {
		if (config.url.includes('/:')) {
			config.url = replaceParamsInURL(config.url, config.params)
		} else {
			config.url = combineQueryToURL(config.url, config.params)
		}
	}


	// console.log("config=" + JSON.stringify(config))
	return adapter(config);
}